package pile.pay.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
 * <p>
 * 充电订单表
 * </p>
 *
 * @author 郭天义
 * @since 2024-06-28
 */
@Getter
@Setter
@TableName("sys_charge_order")
@ApiModel(value = "ChargeOrder对象", description = "充电订单表")
public class ChargeOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("订单id")
    @TableId(value = "order_id", type = IdType.AUTO)
    private Integer orderId;

    @ApiModelProperty("用户id")
    private Integer memberId;

    @ApiModelProperty("电站id")
    private Integer stationId;

    @ApiModelProperty("订单类型、1电量计费 2时间计费 3度数计费")
    private Integer orderType;

    @ApiModelProperty("充电单号 /交易流水号")
    private String startChargeSeq;

    @ApiModelProperty("用户账号")
    private String userAccount;

    @ApiModelProperty("用户姓名")
    private String userName;

    @ApiModelProperty("订单类型 0 不托管  1 托管")
    private String orderTypeValue;

    @ApiModelProperty("充电方式 1/卫莱电微信小程序  2/卫莱电支付宝小程序 3/阿凡电微信小程序 4/阿凡电支付宝小程序 5/其他")
    private Integer chargingType;

    @ApiModelProperty("实收金额")
    private BigDecimal totalMoneyActual;

    @ApiModelProperty("充电枪编码")
    private String connectorCode;

    @ApiModelProperty("电桩编号")
    private String equipmentCode;

    @ApiModelProperty("开始充电时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @ApiModelProperty("结束充电时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @ApiModelProperty("用户手机号")
    private String phone;

    @ApiModelProperty("订单支付时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    @ApiModelProperty("充电时长 /累计充电时间")
    private Integer chargeTime;

    @ApiModelProperty("已充电量")
    private BigDecimal totalPower;

    @ApiModelProperty("起始SOC")
    private Integer startSoc;

    @ApiModelProperty("结束SOC")
    private Integer endSoc;

    @ApiModelProperty("电站名称")
    private String stationName;

    @ApiModelProperty("终端名称")
    private String connectorName;

    @ApiModelProperty("运营商")
    private String orgName;

    @ApiModelProperty("运营商属性1自营2加盟3互联互通")
    private Integer attr;

    @ApiModelProperty("运营商属性")
    private String attrValue;

    @ApiModelProperty("账单id")
    private Integer billId;

    @ApiModelProperty("归属企业")
    private String belongOrg;

    @ApiModelProperty("逻辑卡号")
    private String cardNum;

    @ApiModelProperty("充电信息(1/已判断占位)")
    private String chargeDetails;

    @ApiModelProperty("收费信息")
    private String chargeInfos;

    @ApiModelProperty("订单状态   1/已支付 2/待支付  ")
    private Integer orderStatus;

    @ApiModelProperty("充电状态 1/充电中 2/充电结束 0/启动中")
    private Integer chargingStatus;

    @ApiModelProperty("车牌号")
    private String plateNumber;

    @ApiModelProperty("电桩功率")
    private String connectorPower;

    @ApiModelProperty("优惠券折扣")
    private String couponDiscount;

    @ApiModelProperty("电桩品牌1公牛2其他")
    private Integer equipmentBrand;

    @ApiModelProperty("电桩型号")
    private String equipmentModel;

    @ApiModelProperty("开票状态 1未开票 3开票中 2开票成功 ")
    private Integer billingStatus;

    @ApiModelProperty("订单结束原因")
    private String stopReasonDesc;

    @ApiModelProperty("电站地址")
    private String address;

    @ApiModelProperty("是否删除，1是0否")
    @TableLogic
    private Integer isDelete;

    @ApiModelProperty("添加时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty("删除时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date deleteTime;

    @ApiModelProperty("乐观锁")
    @Version
    private Integer version;

    @ApiModelProperty("尖单价")
    private Integer tipUnitPrice;

    @ApiModelProperty("尖电量 ")
    private Integer tipElectricity;

    @ApiModelProperty("计损尖电量")
    private Integer calculationTipElectricity;

    @ApiModelProperty("尖金额 ")
    private Integer tipMoney;

    @ApiModelProperty("峰单价 精确到小数点后五位（峰电费+	峰服务费）")
    private Integer peakPrice;

    @ApiModelProperty("峰电量 ")
    private Integer peakElectricity;

    @ApiModelProperty("计损峰电量")
    private Integer calculationPeakElectricity;

    @ApiModelProperty("峰金额")
    private Integer peakMoney;

    @ApiModelProperty("平单价")
    private Integer flatPrice;

    @ApiModelProperty("平电量 ")
    private Integer flatElectricity;

    @ApiModelProperty("计损平电量")
    private Integer calculationFlatElectricity;

    @ApiModelProperty("平金额")
    private Integer flatMoney;

    @ApiModelProperty("谷单价")
    private Integer valleyPrice;

    @ApiModelProperty("谷电量 ")
    private Integer valleyElectricity;

    @ApiModelProperty("计损谷电量")
    private Integer calculationValleyElectricity;

    @ApiModelProperty("谷金额")
    private Integer valleyMoney;

    @ApiModelProperty("电表总起值 ")
    private Integer totalStartingValueElectricMeter;

    @ApiModelProperty("电表总止值")
    private Integer totalLimitValueElectricMeter;

    @ApiModelProperty("总电量")
    private Integer totalElectricity;

    @ApiModelProperty("计损总电量")
    private Integer totalPowerLoss;

    @ApiModelProperty("消费金额 电费+服务费")
    private BigDecimal consumptionAmount;

    @ApiModelProperty("交易标识 ")
    private Integer transactionIdentification;

    @ApiModelProperty("交易日期、时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date tradingTime;

    @ApiModelProperty("电动汽车唯一标识")
    private String electricUniqueIdentification;

    @ApiModelProperty("会员折后价")
    private BigDecimal vipFinalAmount;

    @ApiModelProperty("会员优惠金额")
    private BigDecimal vipSpecialPrice;

    @ApiModelProperty("优惠券优惠金额")
    private BigDecimal couponSpecialPrice;

    @ApiModelProperty("订单电费")
    private BigDecimal electricityBill;

    @ApiModelProperty("微信通道费")
    private BigDecimal wxHandlingFee;

    @ApiModelProperty("平台通道费")
    private BigDecimal ptHandlingFee;

    @ApiModelProperty("平台抽取服务费")
    private BigDecimal platformServiceCharge;

    @ApiModelProperty("订单取服务费")
    private BigDecimal serviceCharge;

    @ApiModelProperty("商户最终收取金额  电费+服务费")
    private BigDecimal totalConsumption;

    @ApiModelProperty("合作方 0/卫莱 1/联行 2/快电 3/刷卡充电 4/市政府平台 5/新电途")
    private Integer partner;

    @ApiModelProperty("付款方式 0/余额 1/充电金 2/支付分先充后付 3/第三方平台   4/免费 5/充电金内部价  6/余额内部价 7/充电卡支付 8/企业用户")
    private Integer paymentTypes;

    @ApiModelProperty("0未统计 1已统计")
    private Integer isStatistics;

    @ApiModelProperty("优惠电量")
    private BigDecimal preferentialPower;

    @ApiModelProperty("广告费用")
    private BigDecimal advertisingExpenses;

    @ApiModelProperty("实际电费")
    private BigDecimal actualElectricity;

    @ApiModelProperty("实际服务费")
    private BigDecimal actualServiceFee;


}
